package cn.tqfeiyang.springplus.system.service;

import cn.tqfeiyang.springplus.system.entity.RoleEntity;
import cn.tqfeiyang.springplus.system.request.RoleDTO;
import cn.tqfeiyang.springplus.system.response.RoleVO;
import cn.tqfeiyang.springplus.system.request.RoleSTO;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.tqfeiyang.springplus.framework.pagination.PageData;

/**
 * 角色服务接口
 *
 * @author tqfeiyang
 * @since 2024-08-01
 */
public interface RoleService extends IService<RoleEntity> {

    /**
     * 分页查询角色
     *
     * @param roleSTO 查询数据
     * @return 角色列表
     */
    PageData<RoleVO> selectRolePage(RoleSTO roleSTO);

    /**
     * 查询角色
     *
     * @param roleId 角色id
     * @return 角色信息
     */
    RoleVO selectRoleInfo(Long roleId);

    /**
     * 新建角色
     *
     * @param roleDTO 请求数据
     * @return 角色id
     */
    Long createRole(RoleDTO roleDTO);

    /**
     * 修改角色
     *
     * @param roleId 角色id
     * @param roleDTO 请求数据
     */
    void updateRole(Long roleId, RoleDTO roleDTO);

    /**
     * 删除角色
     *
     * @param roleId 角色id
     */
    void deleteRole(Long roleId);
}
